import axios from 'axios'
import Element from 'element-ui';
const request = axios.create({
    baseURL: 'http://localhost:8086',
    timeout: 2000
})

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token，对请求参数统一加密
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
    // 每次请求就不需要设置参数token了
    //config.headers.Authorization = localStorage.getItem('token')
    return config
}, error => {
    return Promise.reject(error)
});

// response 拦截器
// 可以在接口响应后统一处理结果
// 
request.interceptors.response.use(response => {
     const res = response.data;
     console.log("后置拦截")
     console.log(response)
        // 当结果的code是否为200的情况
     if (res.code === 200 || res.code === 400 ||res) {
     return response
     } else {
          // 弹窗异常信息
     Element.Message({
     message: response.data.msg,
     type: 'error',
     duration: 2 * 1000
     })
          // 直接拒绝往下面返回结果信息
     return Promise.reject(response.data.msg)
     }
     },
    error => {
     console.log(error)// for debug
     if(error.response.data){
        error.message = error.response.data.msg
    }
        // 根据请求状态觉得是否登录或者提示其他
     if (error.response.status === 401) {
        store.commit('REMOVE_INFO');
      router.push({
      path: '/login'
     });
     error.message = '请重新登录';
     }
     if (error.response.status === 403) {
      error.message = '权限不足，无法访问';
     }
     Element.Message({
     message: error.message,
     type: 'error',
     duration: 3 * 1000
     })
     return Promise.reject(error)
     })

export default request
